package org.upo.eps.it.phama.bean;

import java.io.Serializable;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;

@Entity
@Table(name="far_detalle_ped_pro", catalog="phama")@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "detallePedidoProveedor", propOrder = {})
public class DetallePedPro  implements Serializable {

    @EmbeddedId
    @AttributeOverrides({
    @AttributeOverride(name = "idDetalle", column = @Column(name = "ID_DETALLE", nullable = false)),
    @AttributeOverride(name = "idPedidoPro", column = @Column(name = "ID_PEDIDO_PRO", nullable = false))})
    private DetallePedProId id;

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_PEDIDO_PRO", nullable=false, insertable = false, updatable = false)
    private PedidoProveedor pedidoProveedor;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="ID_PRODUCTO", nullable=false)
    private Producto producto;

    @Column(name="CANTIDAD", nullable=false)
    private int cantidad;

    //<editor-fold defaultstate="collapsed" desc="constructors">
    public DetallePedPro() {
    }

    public DetallePedPro(PedidoProveedor pedidoProveedor, Producto producto, int cantidad) {
        this.pedidoProveedor = pedidoProveedor;
        this.producto = producto;
        this.cantidad = cantidad;
    }

    //</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="getters & setters">
    public DetallePedProId getId() {
       return id;
    }

    public void setId(DetallePedProId id) {
       this.id = id;
    }

    public PedidoProveedor getPedidoProveedor() {
        return this.pedidoProveedor;
    }

    public void setPedidoProveedor(PedidoProveedor pedidoProveedor) {
        this.pedidoProveedor = pedidoProveedor;
    }

    public Producto getProducto() {
        return this.producto;
    }

    public void setProducto(Producto producto) {
        this.producto = producto;
    }

    public int getCantidad() {
        return this.cantidad;
    }

    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
    }
    //</editor-fold>

}


